/trnd{1 index abs dup 1 gt 2 index abs 1 gt or{dup floor sub .25 sub abs .25 sub}{-0.5 mul .5 add}ifelse 1 index 0 lt{neg}if 1 index add round}bdf
/roundCTM{mtx currentmatrix mtx 4 0 put mtx 5 0 put mtx 0 get mtx 1 get trnd mtx exch 1 exch put exch trnd mtx exch 0 exch put pop pop mtx 2 get mtx 3 get trnd mtx exch 3 exch put exch trnd mtx exch 2 exch put pop pop setmatrix
}bdf
/pfill{s8 copy pop bfil{gsave setrgbcolor clip patAngle rotate roundCTM
pathbbox /@3 xdf /@4 xdf /@1 xdf /@2 xdf
@2 8. div floor dup @4 8. div ceiling exch sub cvi /@5 xdf 8 mul
@1 8. div floor dup @3 8. div ceiling exch sub cvi /@6 xdf 8 mul translate
0 1 7{/@7 xdf a8s @5 string s8 @7 get 0 1 @5 1 sub{2 index exch 2 index put}for pop @7 exch put}for
1 0 dtransform sgn 4 div exch sgn 4 div exch idtransform translate
setlinewidth /@0 xdf pathbbox newpath ceiling /@3 xdf @0 dv ceiling 1 add @0 mul /@4 xdf floor /@1 xdf @0 dv floor 1 sub @0 mul add @0 @4{dup @1 moveto @3 lineto stroke}for grestore}bdf
/cells{gsave patAngle rotate roundCTM
/@0 xdf pathbbox newpath ceiling /@3 xdf ceiling /@4 xdf 8 div floor 1 sub 8 mul /@1 xdf 8 div floor 1 sub 8 mul 8 @4{@1 8 @3{1 index exch @0}for pop}for grestore}bdf
/raster{5 1 roll{gsave clip setrgbcolor exec grestore}{pop pop pop pop}ifelse newpath}bdf
/kif{currentfont dup/FontMatrix get exch/FontInfo sgt{true}{currentfont/df sgt
{dup/FontInfo sgt{3 1 roll/FontMatrix get mtx concatmatrix exch true}{pop pop pop false}ifelse}{pop pop false}ifelse}
ifelse{3 -1 roll sgt{exch true}{pop false}ifelse}{false}ifelse}bdf
/mc{0 3 1 roll transform neg exch pop}bdf
/gl{1 currentgray sub setgray}bdf
/ul{dup 0 ne sa 2 get 0 ne and{gsave 0 0/UnderlinePosition kif{mc}{ps -10 div}ifelse
/UnderlineThickness kif{mc}{ps 15 div}ifelse
abs setlinewidth neg rmoveto sa 4 get 0 ne{gsave currentlinewidth 2. div dup rmoveto currentpoint newpath moveto 2 copy rlineto stroke grestore}if
sa 3 get sa 4 get or 0 ne{gsave gl 2 copy rlineto stroke grestore rlineto strokepath nlw pys div setlinewidth}{rlineto}ifelse
stroke grestore}{pop}ifelse}bdf
/rtShow{/@0 xdf /@1 xdf /@2 xdf dup @1 sub ul @0 stringwidth pop sub @0 length @2 sub @1 mul sub @2 0 eq{/@3 0 def true}{dup @2 div/@3 xdf( )stringwidth pop spaceMinFactor mul dup @3 gt{dup/@3 xdf @2 mul sub true}{pop pop false}ifelse}ifelse{@0 length @2 sub dv @1 add /@1 xdf}if @3 @1 sub 0 32 @1 0 @0 awidthshow}bdf
/RTSym md /:esr known md/:bsr known and def
/RTSymI RTSym md/:mi known and def
/RTSymO RTSym md/:ff known md/:mo known and and def
/RTSymS RTSym md/:ff known md/:ms known and and def
/RTSymC RTSym md/:mc known and def
/RTSymE RTSym md/:me known and def
RTSym{/RTSymbol/Symbol :bsr 240/apple pd :esr}if
/beBU{md/oldsettransfer known{end bu beDict begin}{mark 0 {md/fontsave known {{currentpoint} stopped fontsave restore not {:M} if 1 add} {exit} ifelse} loop bu /beFSR counttomark -1 roll def}ifelse}bdf